$\forall$$T$:Type, $x$:$T$, $L$:$T$ List, $P$:($\mathbb{N}$$_{\mbox{\scriptsize $<\parallel$$L$$\parallel$+1}}$$\rightarrow\mathbb{B}$). \\[0ex]filter2($P$;$x$.$L$) $=$ if $P$(0)$\rightarrow$ $x$.filter2($\lambda$$i$.$P$($i$+1);$L$) else filter2($\lambda$$i$.$P$($i$+1);$L$) fi $\in$ $T$ List